1. Field of the Invention
The field of the invention is data processing, or, more specifically, methods, apparatus, and products for restoring from a legacy OS environment to a UEFI pre-boot environment.
2. Description of Related Art
Legacy BIOS (Basic Input/Output System) is a kind of firmware, as a basic input/output system, it is responsible for such work as hardware boot and detection when powering up, and acts as an intermediate role while OS controls hardware. Since Windows NT, Linux, these OS have put hardware control programs need to be performed by BIOS in the past into OS, the programs are performed in OS and there is no longer any need to invoke BIOS functionality. Due to rapid development of hardware, legacy BIOS has become a burden in the development.
Nowadays, a newest Extensible Firmware Interface (EFI) has been developed. Unified Extensible firmware Interface (UEFI) is developed based on EFI1.10, and UEFI is a standard that describes a fully new type of interface. Such interface is used by OS for automatically loading from a pre-boot operation environment onto one type of OS, thereby simplifying power up procedure and saving time.
UEFI uses a parameter stack transfer approach in C language style and a dynamic link manner to construct system, it is easier to be implemented than BIOS, better in fault tolerance and error correction, and may shorten the time in system research and development. Furthermore, UEFI operates in 32-bit or 64-bit modes, larger addressing capability could provide better performance in comparing with BIOS. Moreover, driver of UEFI architecture is written in EFI byte code, which is a set of virtual machine instructions for UEFI driver, the instructions are interpreted to run in UEFI driven operation environment and may ensure sufficient downward compatibility of UEFI. In addition, graphic driver function is built in UEFI, which may provide a color graphic environment with high resolution. After entering into the environment, user can adjust configurations by clicking with a mouse, which is as simple as application software in Windows system. Further, UEFI employs modular design, and is logically divided into two parts: hardware control and OS software management, wherein hardware control is common to all UEFI versions, and OS software management is actually a programmable open interface by which main board manufacturers may realize various rich functions. For example, various backup and diagnostic functions well known to those skilled in the art may be realized through UEFI. Therefore, many computer manufacturers have currently begun to use UEFI firmware, and it is expected that sale of UEFI firmware supported machines will be in dominant position.
From the perspective of UEFI firmware, OS may be divided into two types: the first type of OS is one that can support and utilize UEFI firmware, such as Windows Server 2008 R2; the second type of OS is one that cannot support UEFI firmware, i.e. legacy OS. UEFI may provide a compatibility support module, which enables UEFI firmware to load and boot a legacy OS, such as Windows XP 32-bit edition, Windows Server 2003 for x86 etc.
The running environment of UEFI firmware is UEFI pre-boot environment, this environment executes UEFI firmware code and prepares system boot stages of boot environment for OS. When the system load module of UEFI firmware loads an OS supporting and utilizing UEFI, the system load module may directly return to UEFI pre-boot environment if the OS cannot be successfully loaded due to any problem. When the system load module of UEFI firmware loads and boots a legacy OS, however, a compatibility support module is needed in the system load module, or, a compatibility support module is directly utilized without the system load module, so as to make it possible to load and boot the legacy OS. However, in prior art, once UEFI enters into Compatibility Support Module to perform boot attempt on legacy OS, there is no way to return to UEFI pre-boot environment even if boot attempt of the legacy OS fails. As such, engineers can not conduct problem diagnosis.